/**
 * @type {Date}
 *
 * @properties={typeid:35,uuid:"37336800-DF92-4A81-8B22-CBD7F0A61F22",variableType:93}
 */
var fFecha_aux = null;

/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"A630EA50-0E90-404D-8F69-E59E93312AAC",variableType:4}
 */
var fresultado = null;

/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"8856436B-5DB4-4BDC-A32E-1871E8F656F4",variableType:4}
 */
var vanio = null;

/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"69F07A3C-6CF0-49E9-AEB5-1890B610778E",variableType:4}
 */
var vmes = null;

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"614503A7-49FF-4E1B-83CC-6183914BF03E"}
 */
function onAction_autorizar(event) {
	AutorizarAsientoF()
}

/**
 * @properties={typeid:24,uuid:"A2EC0DE3-74F3-4F97-90A8-00271C5DC24C"}
 * @AllowToRunInFind
 */
function AutorizarAsientoF(){
	
	var res = globals.DIALOGS.showQuestionDialog('','Autoriza el asiento?','SI','NO')
	if (res == 'NO')
    {
    	return 
    }
	databaseManager.setAutoSave(false)
	vanio 		= fecha.getFullYear()
	vmes  		= fecha.getMonth()+1
	fFecha_aux 	= fecha
	fresultado 	= 0
	
	fresultado = actualiza_madre_hija()
	if (fresultado == 1)
	{
	  globals.DIALOGS.showWarningDialog("Aviso","No se actualizó el Asiento","Ok")
	  databaseManager.revertEditedRecords()
	  databaseManager.setAutoSave(true)
	  return
	}
	databaseManager.startTransaction()
	if (databaseManager.saveData())
	{
		limbo_cab_to_limbo.deleteAllRecords()
		controller.deleteRecord()  
	    if (!databaseManager.commitTransaction())
	    {
	    	databaseManager.rollbackTransaction()
	    	globals.DIALOGS.showWarningDialog("Aviso","No se actualizó el Asiento","Ok")
	    }
	}
	else
	{
		globals.DIALOGS.showWarningDialog("Aviso","No se actualizó el Asiento","Ok")
	}
	databaseManager.revertEditedRecords()
	databaseManager.setAutoSave(true)
}

/**
 * @properties={typeid:24,uuid:"5EE6A18F-4C5B-4D3C-B0C9-4430159A9127"}
 * @AllowToRunInFind
*/
function actualiza_madre_hija() {
	/** @type {JSFoundSet<db:/contable/numcon>}*/
	var fs_numcon = databaseManager.getFoundSet('contable','numcon')
	fs_numcon.find()
	
	fs_numcon.anio = vanio
	fs_numcon.mes  = vmes
	
	var $ctos = fs_numcon.search()
	if ($ctos != 1)
    {
		globals.DIALOGS.showWarningDialog("Aviso","Fecha inválida","Ok")
		return 1
	}
	else
	{
		if (fs_numcon.marca_cierre == 1)
		{
			globals.DIALOGS.showWarningDialog("Aviso","Mes Cerrado","Ok")
			return 1
		}	
	}
	/** @type {JSFoundSet<db:/contable/asiento_cab>}*/
    var fs_asiento_cab = databaseManager.getFoundSet('contable','asiento_cab')
    
    fs_asiento_cab.newRecord()
    fs_asiento_cab.numero     			= fs_numcon.asiento
    fs_asiento_cab.provisorio 			= fs_numcon.asiento
    fs_asiento_cab.moneda     			= moneda
    fs_asiento_cab.letra      			= letra
    fs_asiento_cab.hizo       			= hizo
    fs_asiento_cab.autorizo   			= globals.glegajo
    fs_asiento_cab.tipo_actualizacion 	= tipo_actualizacion
    fs_asiento_cab.empresa    			= globals.gUservID
    fs_asiento_cab.fecha      			= fecha
	fs_asiento_cab.total     			= total
    fs_asiento_cab.moneda_carga 		= moneda_carga
    globals.gMonedaCarga				= moneda_carga
    fs_asiento_cab.mes   				= vmes
    fs_asiento_cab.anio  				= vanio
    fs_asiento_cab.texto 				= texto
    fs_asiento_cab.dolar 				= dolar
    // copia del limbo_det en asiento_det
    var $cant = databaseManager.getFoundSetCount(limbo_cab_to_limbo)
   	for (var k = 1 ; k <= $cant ; k++)
	{
		limbo_cab_to_limbo.setSelectedIndex(k)
		fs_asiento_cab.asiento_cab_to_asiento.newRecord()
		fs_asiento_cab.asiento_cab_to_asiento.leycod     = limbo_cab_to_limbo.leycod
		fs_asiento_cab.asiento_cab_to_asiento.leyenda    = limbo_cab_to_limbo.leyenda
        fs_asiento_cab.asiento_cab_to_asiento.centro     = limbo_cab_to_limbo.centro 		
        fs_asiento_cab.asiento_cab_to_asiento.division   = limbo_cab_to_limbo.division
        fs_asiento_cab.asiento_cab_to_asiento.cuentas_id = limbo_cab_to_limbo.cuentas_id
        fs_asiento_cab.asiento_cab_to_asiento.empresa    = globals.gUservID 
        fs_asiento_cab.asiento_cab_to_asiento.numero     = fs_numcon.asiento
        fs_asiento_cab.asiento_cab_to_asiento.anio       = vanio
       	fs_asiento_cab.asiento_cab_to_asiento.mes        = vmes
        fs_asiento_cab.asiento_cab_to_asiento.columna    = limbo_cab_to_limbo.columna
        fs_asiento_cab.asiento_cab_to_asiento.importe    = limbo_cab_to_limbo.importe
		fs_asiento_cab.asiento_cab_to_asiento.impodol    = limbo_cab_to_limbo.impodol
	
 		globals.gactualiza_saldos(fs_asiento_cab.asiento_cab_to_asiento)  		
	}			
    fs_numcon.asiento++
    return 0
}

/**
 * Callback method for when form is shown.
 *
 * @param {Boolean} firstShow form is shown first time after load
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"683C4FAF-FD26-4E33-A328-301E30D028A0"}
 * @AllowToRunInFind
 */
function onShow(firstShow, event) {
	controller.loadAllRecords()
}
